查看原文
其他

如何为容器提供持久化存储?

朱灿 XSKY星辰天合 2022-07-18

越来越多的企业开始在生产环境中从裸机和以VM为中心向容器过渡。根据Sysdig 2018年从生产环境的90,000个容器中收集到的实际数据显示,与2017年相比,每位客户每个主机的容器中位数从10个增加到15个,最高的看到一个组织在一台主机上运行154个容器。

容器技术的大规模应用同时,也催生了另外一个问题,即如何为其提供持久化存储?

1

挑战与应对

挑战1:有状态的容器实例运行时,需要持久化卷

A1:当节点异常时,Pod 会被调度到其他节点,如果使用本地卷,新的Pod启动后无法访问原有数据。XSKY提供的解决方案,支持持久化卷,Pod被调度后,依然可以访问到之前的数据。

挑战2:应用创建新容器实例时,需要动态创建的新卷

A2:应用新建一个容器实例运行时,需要一个动态创建的、符合本实例需求的新卷来承载数据;XSKY提供的解决方案,支持存储类的插件,并实现卷的动态创建。

挑战3:不同类型的应用运行时,需要不同访问模式的存储卷

A3:数据库类应用:如MySQL,需要属于自己的独占卷;内容管理类应用:如WordPress,需要共享卷来实现多实例数据共享;XSKY解决方案,同时支持多类型的存储插件,从而同时支持不同类型应用的访问需求。

挑战4:生产环境中交付整个容器系统时,需要存储支持多种容器编排

A4:真实的生产交付过程中,最终客户可能需要存储支持多种容器编排,从而实现存储的复用;XSKY解决方案,经过长期的、持续迭代的测试,已稳定对接主流的多种容器编排系统。

2

XSKY容器存储解决方案详解

Kubernetes在从孵化走向毕业的过程中,逐步构建出一个完善的存储管理虚拟层,并为上层应用抽象出易于使用的存储概念。

XSKY作为数据存储提供商,积极融入Kubernetes生态,提供多类型的存储驱动与丰富的存储特性,以满足最终容器上生产中的存储需求。

Kubernetes存储概念与XSKY驱动类型

  • SC(StorageClass):即存储类,对应底层存储资源池;

  • PV(PersistentVolume):即持久卷,对应底层存储卷或文件夹;

  • PVC(PersistentVolumeClaim):即卷声明,计算任务对存储资源的需求声明;

  • Volume:计算任务中实际用到的存储空间;

  • XSKY SDS驱动(SC)类型:RBD卷,iSCSI卷,NFS卷。

Kubernetes存储组件与XSKY存储特性

  • PV Controller:依照计算需求,动态准备好底层存储卷;

  • AttachDetach Controller:依照调度结果,实现存储卷到指定节点的挂载;

  • Volume Manager:部署在所有计算节点上,负责让Pod把存储卷用起来;

  • Volume Plugins:由存储厂商实现的卷插件,符合 Kubernetes定义的存储接口(创建、挂载等),即厂商驱动;

  • XSKY Plugin:在已有Kubernetes存储接口上,提供更丰富的存储高级特性,满足真实生产需求;

          – 卷级别QoS

          – 卷定时备份

          – 卷异步复制

          – 卷同步复制

3

MySQL应用部署Demo

1. 创建StorageClass,xsky-storageclass.yaml文件内容如下:

StorageClass关键属性介绍:

  • name : SC 的名称

  • monitors : XSKY SDS 管理节点 IP 与 PORT

  • pool : XSKY SDS 存储资源池

  • provisioner: 后端存储类型

 创建结果如图:

2. 创建PersistentVolumeClaim,xsky-pvc.yaml文件内容如下:

PersistentVolumeClaim三个属性介绍:

  • name: PersistentVolumeClaim的名称

  • storage-class: 指定SC的名称

  • storage: 请求的卷大小

创建结果如图:

3. 创建ReplicationController(Pod的一种形式),RC.yaml 文件内容如下:

 创建结果如图:

登录到该MySQL实例测试:  

4. Kubernetes Dashboard中的创建结果如下:

 

4

  XSKY SDS容器存储全景图 

  • XSKY SDS已支持可动态创建的持久化卷;

  • 可同时支持不同类型应用的存储访问需求,包括容器镜像库如 Harbor的对象存储需求;

  • 稳定对接多种容器编排系统,达到生产交付级别;

  • 提供丰富的存储高级特性,满足核心业务的多种数据容灾需求。

END


推荐阅读

Recommended reading

点击下列标题  阅读更多资讯


如何做好容器生态的数据服务?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存